namespace Framework.Interop
{
    ///<summary>
    /// One of the notifications for <see cref="IShellFolderViewCB"/>.
    ///</summary>
    public enum ShellFolderViewMessage : uint
    {
        ///<summary>
        /// Allows the callback object to provide a page to add to the <c>Properties</c> property sheet of the selected object.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774204.aspx">message</see>
        ///</seealso>
        ///</summary>
        AddPropertyPages = 47,

        ///<summary>
        /// Allows the callback object to request that enumeration be done on a background thread.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774204.aspx">message</see>
        ///</seealso>
        ///</summary>
        BackgroundEnum = 32,

        ///<summary>
        /// /// Notifies the callback object that background enumeration is complete.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774207.aspx">message</see>
        ///</seealso>
        ///</summary>
        BackgroundEnumDone = 48,

        ///<summary>
        /// Notifies the callback object that the user has clicked a column header to sort the list of objects in the folder view.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774209.aspx">message</see>
        ///</seealso>
        ///</summary>
        ColumnClick = 24,

        ///<summary>
        /// Allows the callback object to specify the number of items in the folder view.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774211.aspx">message</see>
        ///</seealso>
        ///</summary>
        DefItemCount = 26,

        ///<summary>
        /// Allows the callback object to specify the view mode.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774213.aspx">message</see>
        ///</seealso>
        ///</summary>
        DefViewMode = 27,

        ///<summary>
        /// Notifies the callback function that a drag-and-drop operation has begun.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774215.aspx">message</see>
        ///</seealso>
        ///</summary>
        DidDragDrop = 36,

        ///<summary>
        /// Notifies the callback object that an event has taken place that affects one of its items.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774217.aspx">message</see>
        ///</seealso>
        ///</summary>
        FsNotify = 14,

        ///<summary>
        /// Allows the callback object to specify that an animation be displayed while items are enumerated on a background thread.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774219.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetAnimation = 68,

        ///<summary>
        /// Allows the callback object to add buttons to the toolbar.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774221.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetButtonInfo = 5,

        ///<summary>
        /// Allows the callback object to specify the buttons to be added to the toolbar.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774224.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetButtons = 6,

        ///<summary>
        /// Allows the callback object to provide the details for an item in a Shell folder. Use only if a call to <see cref="IShellFolder2.GetDetailsOf">IShellFolder2.GetDetailsOf</see> fails and there is no <see cref="IShellFolder2.GetDetailsOf">IShellFolder2.GetDetailsOf</see> method available to call.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774226.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetDetailsOf = 23,

        ///<summary>
        /// Allows the callback object to specify a help text string for menu items or toolbar buttons.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774227.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetHelpText = 3,

        ///<summary>
        /// Allows the callback object to specify a Help file and topic.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774229.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetHelpTopic = 63,

        ///<summary>
        /// Specifies which events will generate an <see cref="FsNotify"/> message for a given item.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774231.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetNotify = 49,

        ///<summary>
        /// Allows the callback object to provide the status bar pane in which to display the Internet zone information.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774233.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetPane = 59,

        ///<summary>
        /// Allows the callback object to specify default sorting parameters.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774237.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetSortDefaults = 53,

        ///<summary>
        /// Allows the callback object to specify a <see cref="http://msdn.microsoft.com/en-us/library/bb760250.aspx">ToolTip</see> text string for menu items or toolbar buttons.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774239.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetToolTipText = 4,

        ///<summary>
        /// Allows the callback object to provide Internet zone information.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774241.aspx">message</see>
        ///</seealso>
        ///</summary>
        GetZone = 58,

        ///<summary>
        /// Allows the callback object to modify an item's context menu.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774243.aspx">message</see>
        ///</seealso>
        ///</summary>
        InitMenuPopup = 7,

        ///<summary>
        /// Notifies the callback object that one of its toolbar or menu commands has been invoked.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774245.aspx">message</see>
        ///</seealso>
        ///</summary>
        InvokeCommand = 2,

        ///<summary>
        /// Allows the callback object to merge menu items into the Windows Explorer menus.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774247.aspx">message</see>
        ///</seealso>
        ///</summary>
        MergeMenu = 1,

        ///<summary>
        /// Allows the callback object to register a folder so that changes to that folder's view will generate notifications.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774249.aspx">message</see>
        ///</seealso>
        ///</summary>
        QueryFsNotify = 25,

        ///<summary>
        /// Notifies the callback object of the container site. This is used only when <see cref="http://msdn.microsoft.com/en-us/library/ms683869.aspx">IObjectWithSite.SetSite</see> is not supported and <see cref="http://msdn.microsoft.com/en-us/library/bb762142.aspx">SHCreateShellFolderViewEx</see> is used.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774257.aspx">message</see>
        ///</seealso>
        ///</summary>
        SetIsfv = 39,

        ///<summary>
        /// Notifies the callback object that the folder view has been resized.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774261.aspx">message</see>
        ///</seealso>
        ///</summary>
        Size = 57,

        ///<summary>
        /// Allows the callback object to specify the view's PIDL. This is used only when <see cref="http://msdn.microsoft.com/en-us/library/bb775328.aspx">IPersistIDList.SetIDList</see> and <see cref="http://msdn.microsoft.com/en-us/library/bb775340.aspx">IPersistFolder2.GetCurFolder</see> have failed.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774262.aspx">message</see>
        ///</seealso>
        ///</summary>
        ThisIDList = 41,

        ///<summary>
        /// Notifies the callback object that a menu is being removed.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774263.aspx">message</see>
        ///</seealso>
        ///</summary>
        UnmergeMenu = 28,

        ///<summary>
        /// Allows the callback object to request that the status bar be updated.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774265.aspx">message</see>
        ///</seealso>
        ///</summary>
        UpdateStatusBar = 31,

        ///<summary>
        /// Notifies the callback object that the folder view window is being created.
        ///<seealso>
        /// Native <see cref="http://msdn.microsoft.com/en-us/library/bb774266.aspx">message</see>
        ///</seealso>
        ///</summary>
        WindowCreated = 15
    } ;
}
